<?php namespace Admin\Controller; 
//后台分类控制器
class CateController extends CommonController{
	private $model;
	//实例化model类，用于数据库连接
	public function __auto(){
		$this->model=new \Common\Model\Cate;
	}

	//显示分类列表
	public function index(){
		 //如果没有分类，那么先去添加
		 $data=$this->model->orderby('csort','ASC')->get();
		 if(!$data){
		 	View::success('请先去添加分类',U('add'));
		 }
		 //使具有层级结构的数据变为树状结构
		 $data=Data::tree($data,'cname','cid','pid');
		 // P($data);
		 View::with('data',$data);
		 View::make();

	}
	//添加顶级分类方法
	public function add(){
		if(IS_POST){
			if($this->model->store()){
				View::success('添加成功',U('index'));
			}
			//提示相关错误信息
			View::error($this->model->getError());
		}
		//显示添加部分模版
		View::make();
	}
	//添加子集分类的方法
	public function addSon(){
		if(IS_POST){
			if($this->model->store()){
				View::success('添加成功',U('index'));
			}
			View::error($this->model->getError());
		}
		//获得所属分类
		$cid=Q('get.cid',0,'intval');
		$cate=$this->model->where("cid={$cid}")->find();
		View::with('cate',$cate);
		View::make();
	}
	// 删除分类的方法
	public function del(){
		$cid=Q('get.cid',0,'intval');
		//判断分类下面是否存在文章
		$ArcModel=new \Common\Model\Arc;
		$ArcData=$ArcModel->where("category_cid={$cid}")->find();
		if(!$ArcModel){
			View::error('请现删除该分类下面的文章');
		}
		//如果分类下面没有数据，子分类上移
		//pluck直接获取当前值
		$pid=$this->model->where("cid={$cid}")->pluck('pid');
		$this->model->where("pid={$cid}")->update(array('pid'=>$pid));
		$this->model->where("cid={$cid}")->delete();
		// die;
		View::success("删除成功");
		
	}
	// 编辑分类的方法
	public function edit(){
		//3.添加到数据库
		if(IS_POST){
			if($this->model->edit()){
			View::success("数据修改成功",U('index'));
			}
		View::error($this->model->getError());
		}
		
		//1.获得旧数据
		$cid=Q('get.cid',0,'intval');
		$oldData=$this->model->where("cid={$cid}")->find();
		View::with('oldData',$oldData);
		//2.处理“所属分类”，除了自己和自己的子集
		$cateData=Data::tree($this->model->getNoMy($cid),'cname');
		// P($cateData);
		View::with('cateData',$cateData);
		View::make();
	}
}